import jieba
from wordcloud import WordCloud
import numpy as np
from PIL import Image

# 读取金庸小说文本（需替换为实际文件路径）
with open('E:\\zmz\\金庸.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# 中文分词
words = jieba.cut(text)
filtered_words = [word for word in words if len(word) >= 2 and word not in ['说道', '一个', '只见', '众人', '不知', '起来', '这里', '甚么', '他们', '自己', '只是']]
text = ' '.join(filtered_words)

# 加载中国地图蒙版（需替换为实际图片路径）
mask = np.array(Image.open('E:\\zmz\\chinamap.png'))

# 配置词云参数
wc = WordCloud(
    font_path='simhei.ttf',        # 中文字体路径（需确保存在）
    mask=mask,                    # 使用中国地图蒙版
    background_color='white',     # 背景颜色
    max_words=2000,               # 最大词语数
    max_font_size=150,            # 最大字号
    random_state=42               # 随机种子
)

# 生成词云
word_cloud = wc.generate(text)

# 显示并保存词云
import matplotlib.pyplot as plt
plt.imshow(word_cloud)
plt.axis("off")
plt.show()
word_cloud.to_file('C:/Users/你的用户名/Desktop/金庸武侠中国地图词云.png')